1. Technical Field
The present invention relates to improved information-retrieval methods and systems. In particular, the present invention relates to a data-processing system that hosts a software application and is linked to other data-processing systems by associated linking networks. More particularly, the present invention relates to an improved method and system for providing user help information for a software application that resides on a data-processing system that may be accessed via links to other data processing systems. Still more particularly, the present invention provides a method and system for integrating help databases with knowledge bases utilizing a standardized data format such that dynamically updated help information can be efficiently accessed.
2. Description of the Related Art
Network Access to Information
The development of computerized information resources, such as the "Internet," allows users of data-processing systems to link with other servers and networks, and thus retrieve vast amounts of electronic information heretofore unavailable in an electronic medium. Such electronic information is increasingly displacing more conventional means of information transmission, such as newspapers, magazines, and even television.
The term "Internet" is an abbreviation for "Internetwork," and refers commonly to the collection of networks and gateways that utilize the TCP/IP suite of protocols, which are well-known in the art of computer networking. TCP/IP is an acronym for "Transmission Control Protocol/Internet Protocol," and is a software protocol developed by the Department of Defense for communication between computers. The Internet can be described as a system of geographically distributed computer networks interconnected by computers executing networking protocols that allow users to interact and share information over the networks. Because of such wide-spread information sharing, the Internet has thus far generally evolved into an "open" system for which developers can design software applications for performing specialized operations or services, essentially without restriction.
Electronic information transferred between data-processing networks is usually presented in hypertext, a metaphor for presenting information in a manner in which text, images, sounds, and actions become linked together in a complex nonsequential Web of associations that permit the user to "browse" or "navigate" through related topics, regardless of the presented order of the topics. These links are often established by both the author of a hypertext document and by the user, depending on the intent of the hypertext document. For example, traveling among links to the word "iron" in an article displayed within a graphical user interface in a dataprocessing system might lead the user to the periodic table of the chemical elements (i.e., linked by the word "iron"), or to a reference to the use of iron in weapons in Europe in the Dark Ages. The term "hypertext" was coined in the 1960s to describe documents, as presented by a computer, that express the nonlinear structure of ideas, as opposed to the linear format of books, film, and speech.
The term "hypermedia," on the other hand, more recently introduced, is nearly synonymous with "hypertext" but focuses on the nontextual components of hypertext, such as animation, recorded sound, and video. Hypermedia is the integration of graphics, sound, video, or any combination thereof into a primarily associative system of information storage and retrieval. Hypermedia, as well as hypertext, especially in an interactive format where choices are controlled by the user, is structured around the idea of offering a working and learning environment that parallels human thinking-- that is, an environment that allows the user to make associations between topics rather than move sequentially from one to the next, as in an alphabetic list. Hypermedia, as well as hypertext topics, are thus linked in a manner that allows the user to jump from one subject to other related subjects during a search for information. Hyper-link information is contained within hypermedia and hypertext documents, which allow a user to move back to "original" or referring network sites by the mere "click" (i.e., with a mouse or other pointing device) of the hyper-linked topic.
A typical networked system that utilizes hypertext and hypermedia conventions follows a client/server architecture. The "client" is a member of a class or group that uses the services of another class or group to which it is not related. Thus, in computing, a client is a process (i.e., roughly a program or task) that requests a service provided by another program. The client process utilizes the requested service without having to "know" any working details about the other program or the service itself. In a client/server architecture, particularly a networked system, a client is usually a computer that accesses shared network resources provided by another computer (i.e., a server).
A request by a user for news or other information can be sent by a client application program to a server. A server is typically a remote computer system accessible over the Internet or other communications medium. The server scans and searches for raw (e.g., unprocessed) information sources (e.g., newswire feeds or newsgroups). Based upon such requests by the user, the server presents filtered electronic information as server responses to the client process. The client process may be active in a first computer system, and the server process may be active in a second computer system, communicating with one another over a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage of the information-gathering capabilities of the server.
Client and server communicate with one another utilizing the functionality provided by Hypertext-Transfer Protocol (HTTP). The World Wide Web (WWW) or, simply, the "Web," includes those servers adhering to this standard (i.e., HTTP) which are accessible to clients via a computer or data-processing system network address such as a Universal Resource Locator (URL) . The network address can be referred to as a Universal Resource Locator address. For example, communication can be provided over a communications medium. In particular, the client and server may be coupled to one another via Serial Line Internet Protocol (SLIP) or TCP/IP connections for high-capacity communication. Active within the client is a first process, known as a "browser," which establishes the connection with the server and presents information to the user. The server itself executes corresponding server software which presents information to the client in the form of HTTP responses. The HTTP responses correspond to "Web pages" constructed from a Hypertext Markup Language (HTML) , or other server-generated data. Each Web page can also be referred to simply as a "page."
The client and server typically display browsers and other Internet data for a user via a graphical user interface. A graphical user interface is a type of display format that enables a user to choose commands, start programs, and see lists of files and other options by pointing to pictorial representations (icons) and lists of menu items on the screen. Choices can be activated generally either with a keyboard or a mouse. Internet services are typically accessed by specifying a unique network address (i.e., URL). The URL address has two basic components, the protocol to be used and the object pathname. For example, the URL address, "http://www.uspto.gov" (i.e., home page for the U.S. Patent and Trademark Office), specifies a hypertext-transfer protocol ("http") and a pathname of the server ("www.uspto.gov") . The server name is associated with a unique numeric value (TCP/IP address).
The evolution of personal computers over the last decade has accelerated the Web and Internet toward useful everyday applications. Nearly every computer sold over the last several years has or will, at some point, become "on-line" to an Internet service provider. Somewhere between 20 and 30 million people around the globe use some form of Internet service on a regular basis. The graphical portion of the World Wide Web itself is usually stocked with more than twenty-two million "pages" of content, with over one million new pages added every month.
Free or relatively inexpensive computer software applications such as Internet "search engines" make it simple to track down sites where an individual can obtain information on a topic of interest. A person may type in a subject or key word and generate a list of network sites (i.e., Web sites). Thus, with "home pages" published by thousands of companies, universities, government agencies, museums, and municipalities, the Internet can be an invaluable resource. With a little practice, even new users can skim millions of Web pages or thousands of newsgroups, not only for topics of general interest, but also to access precise bits of data. The market for Internet access and related applications is explosive and is growing faster than expected, doubling in size approximately every three months.
Existing Help Architecture for Software Applications
Typically, software applications offer a basic level of support through a built-in Help Package that provides answers to simple usage problems. However, when application users encounter complex problems, they are referred to a Customer Solution Center that has access to a knowledge base containing solutions for such problems. This is primarily due to the fact that application developers cannot predetermine such complex situations and therefore do not include them into the Help Package. The term "help package" will be utilized hereinafter in association with a software application and will to refer to a set of instructions provided by a software manufacturer that provide fundamental guidance for users of the software application.
In order to support the application's rich functionality, Help Packages, in some cases are as large as the application itself. While the price of storage devices, such as hard disk drives, is gradually falling, the number of applications stored in such devices and the space (swap space) required to manage these applications is also growing at an exponential rate. As a result, it is imperative to allocate storage space for more frequently accessed data than the Help Package.
Every application available today is equipped with a standard help package that is accessed when a user "clicks" on the application's `Help` button. For example, there is a standard `Help` button in every window frame generated by a Windows application. Each `Help` button provides assistance on the data/function contained in its window. The data itself is stored in a `name.hlp` file where `name` is the name associated with the information being accessed. In the current scheme, an application loads the Help file whenever a user clicks on the `Help` button. The user is then able to maneuver through this file to get the required help information. In cases where it is not possible to resolve a problem through the above mentioned help mechanisms, the user either calls a Help Desk agent in his/her organization or a customer service representative at the manufacturer's site.
Applications are growing in complexity due to their increased functional capability. The help package provided with these applications is frequently insufficient to resolve complex issues created by these applications. Solutions based-on knowledge packs are growing in popularity as they provide answers to complex problems. These knowledge bases are built by third party vendors by converting Help Desk problem reports into a knowledge base and then shipping them to various customers. The knowledge bases can be installed on a Web server at the customer's site and accessed by the user though an HTML browser. Each knowledge base is an application help database which can be accessed through sophisticated search mechanisms. Knowledge base developers enter into a service agreement with their customers to provide periodic updates (CD ROM) to the help database.
There are three key issues that have not been adequately addressed in the existing help architecture. The first of these issues is that, in standard help application packages, the information provided is static and contains what the product developer thought would be sufficient for the user. There is no dynamic mechanism available for the product developer to monitor and improve the application or the help package without shipping update disks. Another problem with existing help architectures relates to the aforementioned knowledge bases. Though knowledge bases are effective for solving complex problems; however, these products have to be accessed and searched through an independent mechanism. In addition, these bases require frequent maintenance (updates from the supplier) by the customer.
Finally, while the price of storage devices, such as hard disk drives, is gradually falling, the number of complex applications stored in such devices and the space (swap space) required to manage these applications are also growing at an exponential rate. It is imperative to use the disk space for more frequently accessed date rather than the data in a help package.
At the time of application development, developers can only anticipate potential problem areas in each application. As a result, application help packages do not provide detailed help to address complex situations. These complex situations may prove very costly, requiring intensive Help Desk support and frequent application updates to the customer. As an alternative, application developers can tap into a dynamically accumulating knowledge database and observe these complex situations ahead of time. These complex situations can be analyzed to make changes in the application design or provide more detailed help in future releases of the application. Developers who already offer a version of the standard help package (see above) from their Web site can now make updates immediately available to the customer. Customers can also periodically download these updated packages and refresh their local version of the package.
From the foregoing, it can be seen that a need exists for a method and system to provide help information readily and easily to a user in an efficient manner. A solution to the aforementioned problem would save a software user time and energy in searching separate and independent mechanisms for needed help information. A method and system that allow a user the opportunity to utilize a centralized application launched over the Internet and directly consult help information would provide the user access to comprehensive and dynamically updated help information.